// Bitwise Operation Functions

export function <and>: &(Bit,Bit) => Bit  native '&Bit';
export function  <or>: &(Bit,Bit) => Bit  native '|Bit';
export function <not>: &(Bit) => Bit      native '~Bit';

export function <and>: &(Byte,Byte) => Byte    native '&Byte';
export function  <or>: &(Byte,Byte) => Byte    native '|Byte';
export function <not>: &(Byte) => Byte         native '~Byte';
export function <xor>: &(Byte,Byte) => Byte    native '^Byte';
export function <shl>: &(Byte,Number) => Byte  native '<<Byte';
export function <shr>: &(Byte,Number) => Byte  native '>>Byte';

export function <and>: &(Word,Word) => Word    native '&Word';
export function  <or>: &(Word,Word) => Word    native '|Word';
export function <not>: &(Word) => Word         native '~Word';
export function <xor>: &(Word,Word) => Word    native '^Word';
export function <shl>: &(Word,Number) => Word  native '<<Word';
export function <shr>: &(Word,Number) => Word  native '>>Word';

export function <and>: &(Dword,Dword) => Dword   native '&Dword';
export function  <or>: &(Dword,Dword) => Dword   native '|Dword';
export function <not>: &(Dword) => Dword         native '~Dword';
export function <xor>: &(Dword,Dword) => Dword   native '^Dword';
export function <shl>: &(Dword,Number) => Dword  native '<<Dword';
export function <shr>: &(Dword,Number) => Dword  native '>>Dword';

export function <and>: &(Qword,Qword) => Qword   native '&Qword';
export function  <or>: &(Qword,Qword) => Qword   native '|Qword';
export function <not>: &(Qword) => Qword         native '~Qword';
export function <xor>: &(Qword,Qword) => Qword   native '^Qword';
export function <shl>: &(Qword,Number) => Qword  native '<<Qword';
export function <shr>: &(Qword,Number) => Qword  native '>>Qword';

